# 2024/7/31
# utils
# PyCharm
# log.py
# Author: liaohf
import os
import time
import colorlog
import inspect

log_path = os.path.dirname(os.path.dirname(__file__)).replace("/", "\\") + "\\logs"
if not os.path.exists(log_path):
    os.mkdir(log_path)  # 如果不存在这个logs文件夹，就自动创建一个
log_name = os.path.join(log_path, '%s.Logs' % time.strftime('%Y-%m-%d'))  # 文件的命名
log_colors_config = {
    'DEBUG': 'light_cyan',
    'INFO': 'light_green',
    'WARNING': 'light_yellow',
    'ERROR': 'light_red',
    'CRITICAL': 'light_red',
}


def my_logger(name='root'):
    import logging
    log_user = name
    # 创建一个logger
    logger = logging.getLogger(log_user)
    logger.setLevel(logging.DEBUG)  # 设置日志级别

    # 创建一个handler，用于写入日志文件
    formatter = colorlog.ColoredFormatter(
        '%(log_color)s[%(asctime)s]-[%(name)s]-'
        '[%(filename)s]-[%(funcName)s]-[%(lineno)d]-'
        '[%(threadName)s]-[%(thread)d]-[%(levelname)s]:'
        ' %(message)s',
        log_colors=log_colors_config)
    fh = logging.FileHandler(filename=log_name, mode='a', encoding='utf-8')
    fh.setLevel(logging.DEBUG)
    # 定义handler的输出格式
    fh.setFormatter(formatter)
    # 给logger添加handler
    logger.addHandler(fh)

    # 创建一个handler，用于输出到控制台
    ch = logging.StreamHandler()
    fh.setLevel(logging.DEBUG)
    ch.setFormatter(formatter)
    logger.addHandler(ch)

    return logger


logger = my_logger()

